//
//  HLIMCellLayoutConfig.h
//  YueYue
//
//  Created by hulu001 on 2024/1/11.
//

#ifndef HLIMCellLayoutConfig_h
#define HLIMCellLayoutConfig_h


@class HLIMKitMessageModel;

@protocol HLIMCellLayoutConfig <NSObject>

/// 返回message的内容大小
/// @param width cell宽
- (CGSize)contentSize:(HLIMKitMessageModel *)model cellWidth:(CGFloat)width;

/// 需要构造的cellContent类名
- (NSString *)cellContent:(HLIMKitMessageModel *)model;

/// 左对齐的气泡，cell气泡距离整个cell的内间距
- (UIEdgeInsets)cellInsets:(HLIMKitMessageModel *)model;

/// 左对齐的气泡，cell内容距离气泡的内间距
- (UIEdgeInsets)contentViewInsets:(HLIMKitMessageModel *)model;

/**
 * @return 返回message的所回复消息内容大小
 */
- (CGSize)replyContentSize:(HLIMKitMessageModel *)model cellWidth:(CGFloat)width;

/**
 *  需要构造的ReplyContent类名
 */
- (NSString *)replyContent:(HLIMKitMessageModel *)model;

/**
 *  左对齐的气泡，cell reply气泡距离整个cell的内间距
 */
- (UIEdgeInsets)replyCellInsets:(HLIMKitMessageModel *)model;

/**
 *  左对齐的气泡，cell reply内容距离气泡的内间距，
 */
- (UIEdgeInsets)replyContentViewInsets:(HLIMKitMessageModel *)model;

/// 左对齐的气泡，头像控件的 size
- (CGSize)avatarSize:(HLIMKitMessageModel *)model;

/// 左对齐的气泡，头像控件的 origin 点
- (CGPoint)avatarMargin:(HLIMKitMessageModel *)model;

/// 左对齐的气泡，昵称控件的 origin 点
- (CGPoint)nickNameMargin:(HLIMKitMessageModel *)model;

/// 消息显示在左边
- (BOOL)shouldShowLeft:(HLIMKitMessageModel *)model;

/// 是否显示头像
- (BOOL)shouldShowAvatar:(HLIMKitMessageModel *)model;

/// 是否显示昵称
- (BOOL)shouldShowNick:(HLIMKitMessageModel *)model;

/// 是否显示时间
- (BOOL)shouldShowTime:(HLIMKitMessageModel *)model;

/// 是否显示未读消息
- (BOOL)shouldShowUnread:(HLIMKitMessageModel *)model;

/// 是否开启重试叹号开关
- (BOOL)disableRetryButton:(HLIMKitMessageModel *)model;

@end


#endif /* HLIMCellLayoutConfig_h */
